From: mjs@sfsup.UUCP Subject: Re: FB-01 microtonality Date: 27 Feb 87 01:20:52 GMT In article <13421@cca.CCA.COM> m204help@cca.CCA.COM (Keith Hedger) writes: >In the ads for the FBO1, it is stated that the instrument will store >microtonal tunings. Is this the same capability that is available in the new >DX7's and TX81Z's ??? Can this facility be used to actually play using >techniques such as Just Intonation etc. ??? >keith hedger Keith, I dunno about any ads, but perusing the manual here, the FB-01 cannot store microtonal tunings, but it can play microtonal notes (to a resolution of 1 cent, relative to a chromatic note). If you're using a PC (of any brand) to control your MIDI setup, then you can do your own microtonal scales, but the FB-01 only knows microtonal notes. Here's a quickie summary of the MIDI implementation (System Exclusives only): F0 43 2s 0C F7 Dump Voice Bank 0 F0 43 75 0s 20 00 0x F7 Dump Voice Bank "x" F0 43 75 0s 20 01 00 F7 Dump Current Configuration Buffer F0 43 75 0s 20 02 xx F7 Dump Configuration Bufffer "xx" F0 43 75 0s 20 03 00 F7 Dump All Configuration Memory F0 43 75 0s 20 04 00 F7 Dump ID Number F0 43 75 0s 2i 05 00 F7 Dump Instrument "i" Voice Data Notes: "s" is the system exclusive channel a given FB-01 is to respond to (this supports multiple FB-01's on the same cable. "x" is a voice bank number (0..6). "xx" is a configuration number (0..20 decimal). "i" is 8 + an instrument nuber (0..7). F0 43 1s 15 pp dd F7 Conf. Parameter Change By MIDI Channel F0 43 75 0s 2i pp dd F7 Conf. Parameter Change By Sys Channel + Inst. # F0 43 1s 15 pp 0y 0x F7 Voice Parameter Change By MIDI Channel F0 43 75 0s 2i pp 0y 0x F7 Voice Parameter Change By Sys Channel + Inst. # F0 43 75 0s 10 pp dd F7 Sys. Parameter Change By MIDI Channel Notes: "pp" has varying ranges for each of the above, and represents a parameter number. "s" is as above. "i" is as above. "dd" is a data value, generally 7 bits. "x" and "y" are 4-bit data values (I dunno why!). EVENT LISTS This is new stuff for Yamaha. The sequence: F0 43 75 70 introduces an event list, and it is (of course) terminated by the F7 (EOX). Any number of events may be enclosed in the list. 0n kk ff Note Off with Fraction 1n kk ff vv Note On/Off with Fraction 2n kk ff vv yy xx Note On/Off with Fraction and Duration 3n cc vv Control Change 4n pp Program Change 5n vv After Touch 6n yy xx Pitch Bend 7n pp dd Inst. Param. Change (1-byte) 7n pp 0y 0x Inst. Param. Change (2-byte) In addition, the FB-01 can return 3 types of "answers" to system exclusive requests: F0 43 6s 02 F7 ACK F0 43 6s 03 F7 NAK F0 43 6s 04 F7 "cancel" I haven't yet ascertained all the circumstances under which these are sent. If anyone has specific questions, I'll be happy to answer email, but I don't guarantee I'll be reading this newsgroup (I have this boss, see, and he has these expectations that I'll actually get some work done...). -- Marty Shannon UUCP: ihnp4!attunix!mjs Phone: +1 (201) 522 XXXX (in flux; forget it for now) From: RAYBRO%HOLON%UTRC@UTRCGW.UTC.COM (William R(ay) Brohinsky) Subject: Re: Yamaha FB01 Sound Generator Date: 24 Jan 91 12:51:00 GMT Here, also are a few of the more important equations: I= deltaf/fm where I=modulation index deltaf=frequency deviation fm=modulating frequency Fortunately, DX-type synths use numbers from 0-100 or 0-127 for the output values of each operator. Knowing this number, you can look up the modulation index that would result from using that number for a modulator in tables in the back of the book. Now the bad news: there is no table for the FB01, and the three tables given (with graphs for interpolation) are for DX7, DX-21, and CX5. Worse yet, the values from these tables/graphs for a modulation index of 1 are 70,~63, and 97.5 (roughly). This is one thing that makes translating 6-op (where only four operators are used) to 4-op voices. Next important thing, is to be able to guess the number of significant sidebands. Although this relies on everything from psychoacoustics, acoustics, and physiology to power theory, Messrs. Chowing and Bristow postulate that the number of sidebands to care about is K=I+2 So if the modulation index is 1, you should keep track of three sidebands. I would modify this, from logic, that as I approaches zero, the 2 should also [replace previous 2 lines with:] Note that they calculate sideband number as c+Km, where c=carrier K=sideband number (0,1,2,...n) m=modulation freq n=sideband number This way, by their figuring, you get the carrier and three sidebands on eith er side of it with I=1. NOTE also that I=0 is an exception, because an unmodulated carrier MUST be the carrier alone! (i.e., K=0) I suspect that the first two sidebands rise very quickly with increasing I, which is why it takes to at least 60 before you get to I=1 when you have a total of 100 or 127 max! The only remaining necessity for calculating sideband power are: remember that the negative sidebands wrap around zero (if the modulationfreq is greater than the carrier) or at least approach zero (if the modulation freq is less than the carrier, and I is large enough, some of them will still wrap around zero!). This zero wrap is a large part of what allows making such complex spectra. If the M and C freq's are integral multiples of one another (even if they are both fractional, like .75 and 1.5) then at least some of the sidebands that wrap around zero (dependant on I) will overlay upper sidebands. Note also, that any negative frequency is just a positive frequency that is inverted (180degrees out of phase), and will subtract it's amplitude from any present positive frequency. Then, you can figure out the amplitude of the sidebands using bessel functions and just subtract the negative frequency amplitudes from the positive frequeny amplitudes for the same |frequency|, HOWEVER: There is just one more bugaboo in FM: For some reason, not explicitly stated in the book, the negative sidebands [read that: the LEFT sidebands] are not all in phase, although the right sidebands are. For the left sidebands (the lower freq side of the carrier] each odd sideband is NEGATIVE! This means that, for an I of 4 (six significant sidebands) the upper sidebands will all be positive, but the lower ones are first lower SB: negative Second lower SB: zero (we are assuming that c=m) third lower SB: positive (negative because it's odd, negative again because of the wrap around zero) and at the same freq as the carrier Fourth lower SB: negative and at the same freq as the first upper sideband fifth lower SB: positive and at the same freq as the second upper sideband sixth lower SB: negative and at the same freq as the third upper sideband The tables and figures in the book are invaluable for figuring all this out. My description (shot through with corrections) is rather weak. Note that, since the curve of the TL vs. I graphs is non-linear (I believe it is logarithmic, starting at zero and remaining close to the TL axis 'til the numbers quoted above for I=1, where it starts to climb to vertical and parallel to the I axis) that a DX/FB/TX programmer might have to have a lookup table to program outputs in terms of I. This should be switched according to algorithm: the carrier(s) should show their outputs in terms of TL, and carriers should be in terms of I. As for feedback operators, I don't even want to think about it! raybro